Apache CXF এর ওয়েব সার্ভিস ডিপ্লয়মেন্ট সাধারণত Servlet Containers (যেমন Apache Tomcat) অথবা Java EE Application Servers (যেমন JBoss এবং GlassFish) এ করা হয়। এসব সার্ভার ওয়েব অ্যাপ্লিকেশন হোস্ট করার জন্য প্রয়োজনীয় প্ল্যাটফর্ম প্রদান করে এবং CXF এর মতো ওয়েব সার্ভিস ফ্রেমওয়ার্ক ডিপ্লয় করার সুবিধা দেয়। নিচে এই সার্ভিসগুলিতে Apache CXF ওয়েব সার্ভিস ডিপ্লয় করার প্রক্রিয়া আলোচনা করা হলো।
Apache Tomcat একটি ওপেন সোর্স Servlet Container যা Java Servlet এবং JavaServer Pages (JSP) সমর্থন করে। Apache CXF ওয়েব সার্ভিসের জন্য Tomcat ব্যবহারের ক্ষেত্রে, এটি মূলত একটি Servlet-based application হিসেবে ডিপ্লয় হয়।
CXF লাইব্রেরি সংগ্রহ করুন: Tomcat এ CXF ইনস্টল করতে প্রথমে Apache CXF এর লাইব্রেরি সংগ্রহ করুন। আপনি Maven বা ZIP ফাইল ব্যবহার করে CXF লাইব্রেরি সংগ্রহ করতে পারেন। Maven ব্যবহার করলে pom.xml
ফাইলে নিচের ডিপেন্ডেন্সি যোগ করতে হবে:
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>3.4.0</version>
</dependency>
Web Application Structure: Tomcat এর জন্য একটি সাধারণ Web Application Structure তৈরি করুন, যেমন:
/myapp
/WEB-INF
/classes
/lib
web.xml
/src
/services
Web.xml কনফিগারেশন: web.xml
ফাইলে Apache CXF এর DispatcherServlet কনফিগার করতে হবে:
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<servlet>
<servlet-name>CXFServlet</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>CXFServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
</web-app>
CXF Endpoint তৈরি করুন: ওয়েব সার্ভিস এর জন্য একটি Endpoint তৈরি করুন। উদাহরণস্বরূপ, একটি সাধারন SOAP ওয়েব সার্ভিস:
@WebService
public class HelloWorld {
public String sayHello(String name) {
return "Hello, " + name;
}
}
CXF সার্ভিস কনফিগারেশন: CXF সার্ভিস কনফিগারেশনের জন্য একটি Java class তৈরি করুন যেখানে CXF endpoint মেপ করা হবে:
import org.apache.cxf.jaxws.JaxWsServerFactoryBean;
public class CXFServicePublisher {
public static void main(String[] args) {
HelloWorld implementor = new HelloWorld();
JaxWsServerFactoryBean factory = new JaxWsServerFactoryBean();
factory.setServiceClass(HelloWorld.class);
factory.setAddress("http://localhost:8080/myapp/services/hello");
factory.create();
}
}
webapps
ফোল্ডারে ওয়েব অ্যাপ্লিকেশনটি ডিপ্লয় করুন এবং সার্ভিসটি রান করুন। এরপর ব্রাউজারে বা SOAP UI তে http://localhost:8080/myapp/services/hello
ইউআরএল দিয়ে ওয়েব সার্ভিসটি অ্যাক্সেস করতে পারবেন।JBoss (এখন WildFly) হল একটি Java EE অ্যাপ্লিকেশন সার্ভার যা অনেক শক্তিশালী ফিচার সরবরাহ করে, যেমন ট্রানজ্যাকশন, সিকিউরিটি, এবং মেসেজিং। JBoss সার্ভারে CXF ওয়েব সার্ভিস ডিপ্লয় করার প্রক্রিয়া সাধারণত Servlet-based কনফিগারেশনের মতো।
Maven Dependencies: প্রথমে Maven প্রজেক্টে Apache CXF এর ডিপেন্ডেন্সি যুক্ত করুন:
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>3.4.0</version>
</dependency>
web.xml
কনফিগারেশন করতে হবে।web.xml
ফাইলে CXFServlet
কনফিগারেশন@WebService
অ্যানোটেশন ব্যবহার করে ওয়েব সার্ভিস তৈরি করাdeploy
ফোল্ডারে জার ফাইল হিসেবে JBoss/WildFly এ ডিপ্লয় করুন।GlassFish একটি পূর্ণাঙ্গ Java EE সার্ভার যা ওয়েব সার্ভিস সহ অনেক ধরনের এন্টারপ্রাইজ অ্যাপ্লিকেশন হোস্ট করতে ব্যবহৃত হয়। Apache CXF কে GlassFish সার্ভারে ডিপ্লয় করা খুবই সহজ, এবং এতে JAX-WS এবং JAX-RS সমর্থন পাওয়া যায়।
Maven Dependencies: প্রথমে pom.xml
ফাইলে CXF লাইব্রেরির ডিপেন্ডেন্সি যোগ করুন:
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>3.4.0</version>
</dependency>
Web Service Endpoint তৈরি: আপনার ওয়েব সার্ভিস তৈরি করুন। GlassFish এ সাধারণভাবে @WebService অ্যানোটেশন ব্যবহার করে এন্ডপয়েন্ট তৈরি করা হয়:
@WebService
public class HelloWorld {
public String sayHello(String name) {
return "Hello, " + name;
}
}
web.xml
ফাইল এবং @WebService
অ্যানোটেশন ব্যবহার করলেই হয়।domains/domain1/autodeploy
ফোল্ডারে রেখে সার্ভিসটি রান করুন।এইভাবে আপনি Apache CXF ওয়েব সার্ভিসগুলো Apache Tomcat, JBoss/WildFly, এবং GlassFish সার্ভারে সফলভাবে ডিপ্লয় করতে পারবেন।